package com.zhu.fastFoodRestaurantOrderSystem.util;

import com.zhu.fastFoodRestaurantOrderSystem.model.Item;
import com.zhu.fastFoodRestaurantOrderSystem.model.enumType.OrderStatus;

import java.util.List;

public class ModifiedType {

    /**
     * 商品修改类型
     * @param oldItems  原来的商品列表
     * @param newItems  新的商品列表
     * @return  返回修改类型
     */
    public OrderStatus ModifiedType(List<Item> oldItems, List<Item> newItems){
        long oldItemsCount = oldItems.stream().count();
        long newItemsCount = newItems.stream().count();
        long i = 0;
        boolean flag = false;

        for(Item item : newItems){
            if (flag)
                break;
            for (Item item1 : oldItems){
                if (item.getName().equals(item1.getName())){
                    flag = true;
                    break;
                }
            }
            i++;
        }

        if (i == newItemsCount){
            return OrderStatus.SINGLE_SUBSTITUTION;
        }

        if (oldItemsCount > newItemsCount){
            return OrderStatus.PARTIAL_MODIFICATION_DELETE_ITEMS;
        }

        if (oldItemsCount < newItemsCount){
            return OrderStatus.PARTIAL_MODIFICATION_ADD_ITEMS;
        }

        if (i != newItemsCount && oldItemsCount == newItemsCount){
            return OrderStatus.PARTIAL_MODIFICATION_REPLACE_ITEMS;
        }

        return null;
    }
}
